<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author I062261
 */
interface BIOperationFlowManager {

    //put your code here
    /**
     * get application's operationFlows
     */
    public function getOperationFlows($data = NULL);

    /**
     * this function will get user's roles first, then
     * return all operationFlow belong to user
     * @param mix $userId, 
     */
    public function getUserOperationFlows($userId, $data = NULL);

    /**
     * operationFlow can create in designtime or runtime
     * @param type $name
     * @param type $data, if specify 'type'='designtime',means designtime operationFlow
     * default type is runtime
     */
    public function createOperationFlow($name, $data = NULL);

    /**
     * remove operation will add remove tag for operationFlow, never really delete it
     * @param mix operationFlow, if numeric, use as operationFlow id, if string, as operationFlow name
     * @param type $data
     */
    public function removeOperationFlow($operationFlow, $data = null);

    /**
     * 
     * @param mix $operation,, if numeric, use as operationFlow id, if string, as operationFlow name
     * @param type $data
     */
    public function updateOperationFlow($operationFlow, $data = null);

    /**
     * 
     * @param mix $oFlow, if numberic, use as opFlow id, if string, use as name
     * @param type $data
     */
    public function getOpeationFlow($opFlow, $data = null);
}

?>
